package java图形化界面;

import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;

/*
* 图形化界面
* 事件源 监听器
*
*
* */
public class TestWindow {
        static TextField tf=new TextField();
        static TextArea ta=new TextArea();

    public static void main(String[] args) {
        Frame f=new Frame("图形化界面的学习");
        ta.setBackground(Color.yellow);
        tf.setBackground(Color.cyan);
        f.setLayout(new BorderLayout());
        f.add(tf,BorderLayout.SOUTH);
        f.add(ta,BorderLayout.NORTH);
        f.setVisible(true);
    //窗口自适应大小
        f.pack();
        tf.addActionListener(new TFListener1());
    //添加窗口关闭
        f.addWindowListener(new WindowAdapter() {
            @Override
            public void windowClosing(WindowEvent e) {
                System.exit(0);
            }
        });

    }
}
class TFListener1 implements ActionListener{

    @Override
    public void actionPerformed(ActionEvent e) {
    //获取文本框的内容，trim()方法是去除空格
        String str=TestWindow.tf.getText().trim();
        int m=0;
        int n=0;
        int s=0;
        int i=0;
    // 将文本框的字符转换成数字
        n=Integer.parseInt(str);
        for(m=1;m<n;m++){
            s=0;
            for(i=1;i<m;i++)
                if((m%i)==0)
    //          计算因子之和
                    s=s+i;
            if(s==m){
             TestWindow.ta.append("完数"+m+"\t"+"它的因子是：");
             for(i=1;i<m;i++){
                 if(m%1==0)
                     TestWindow.ta.append(i+" ");
             }
             TestWindow.ta.append("\n");
            }

        }
    }
}
